home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 24 / Mac Magazin and MacEasy Magazine CD - Issue 24.iso / Grafik & Text / VivaPress Upt. & Demo / Demo-Version 2.1 / VivaPress® Pro 2.1 FPU / VivaPressÆ Pro 2.1 FPU.rsrc / prec_103 < prev    next >
Text File  |  1996-04-28  |  20KB  |  1,013 lines

  1. %%BeginResource: Pattern operators
  2. userdict begin
  3. /level2 /languagelevel where {pop languagelevel 2 ge}{false} ifelse def
  4. level2 { /dontload save def } if
  5. /PATcg {
  6. 7 dict dup begin
  7. /lw currentlinewidth def
  8. /lc currentlinecap def
  9. /lj currentlinejoin def
  10. /ml currentmiterlimit def
  11. /ds [ currentdash ] def
  12. /cc [ currentrgbcolor ] def
  13. /cm matrix currentmatrix def
  14. end
  15. } def
  16. /PATsg {
  17. begin
  18. lw setlinewidth
  19. lc setlinecap
  20. lj setlinejoin
  21. ml setmiterlimit
  22. ds aload pop setdash
  23. cc aload pop setrgbcolor
  24. cm setmatrix
  25. end
  26. } def
  27. /PATsc {
  28. aload length
  29. dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse
  30. } bind def
  31. /PATtcalc {
  32. gsave
  33. exch concat
  34. matrix currentmatrix exch
  35. 2 ne {
  36. dup 4 get exch dup 5 get exch
  37. XStep 0 dtransform round exch round exch
  38. XStep div exch XStep div exch
  39. 0 YStep dtransform round exch round exch
  40. YStep div exch YStep div exch
  41. 7 -3 roll astore
  42. } if
  43. grestore
  44. } bind def
  45. /PATmp {
  46. exch dup length 8 add
  47. dict copy
  48. begin
  49. TilingType PATtcalc
  50. /PatternGState PATcg def
  51. PatternGState /cm 3 -1 roll put
  52. currentdict /Multi known not { /Multi 1 def } if
  53. /FontType 3 def
  54. /Encoding 256 array def
  55. 3 string 0 1 255 { Encoding exch dup 3 index cvs cvn put } for pop
  56. /FontMatrix matrix def
  57. /FontBBox BBox def
  58. /BuildChar {
  59. mark 3 1 roll
  60. exch begin
  61. Multi 1 ne { PaintData exch get } { pop } ifelse
  62. PaintType 2 eq Multi 1 ne or
  63. { XStep 0 FontBBox aload pop setcachedevice }
  64. { XStep 0 setcharwidth } ifelse
  65. currentdict
  66. /PaintProc load
  67. end
  68. gsave
  69. false PATredef exec true PATredef
  70. grestore
  71. cleartomark
  72. } bind def
  73. currentdict
  74. end
  75. /foo exch
  76. definefont
  77. } bind def
  78. /PATpcalc {
  79. PATDict /CurrentPattern get begin
  80. gsave
  81. PatternGState /cm get setmatrix
  82. BBox aload pop pop pop translate
  83. pathbbox
  84. grestore
  85. YStep div ceiling
  86. 4 1 roll
  87. XStep div ceiling
  88. 4 1 roll
  89. YStep div floor
  90. 4 1 roll
  91. XStep div floor
  92. 4 1 roll
  93. 2 index sub cvi abs
  94. exch 3 index sub cvi abs exch
  95. 4 2 roll
  96. YStep mul
  97. exch
  98. XStep mul exch
  99. end
  100. } bind def
  101. /PATfill {
  102. PATDict /CurrentPattern get dup begin
  103. setfont
  104. PatternGState PATsg
  105. PaintType 2 eq { PATDict /PColor get PATsc } if
  106. 3 index string
  107. 0 1 Multi 1 sub {
  108. 3 index 3 index
  109. moveto
  110. Multi 1 ne { dup PaintColors exch get PATsc } if
  111. 0 1 7 index 1 sub {
  112. 2 index exch 2 index
  113. put
  114. } for pop
  115. 3 index
  116. {
  117. currentpoint
  118. 2 index show
  119. YStep add moveto
  120. } repeat
  121. } for
  122. 5 { pop } repeat
  123. end
  124. } bind def
  125. /oldfill         /fill load def
  126. /oldeofill        /eofill load def
  127. /oldstroke         /stroke load def
  128. /oldshow        /show load def
  129. /oldashow        /ashow load def
  130. /oldwidthshow    /widthshow load def
  131. /oldawidthshow    /awidthshow load def
  132. /oldkshow        /kshow load def
  133. /PATredef {
  134. userdict begin
  135. {
  136. /fill         { /clip load PATdraw newpath } bind def
  137. /eofill        { /eoclip load PATdraw newpath } bind def
  138. /stroke        { PATstroke } bind def
  139. /show        { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
  140. /ashow        { 0 0 null 6 3 roll PATawidthshow } bind def
  141. /widthshow    { 0 0 3 -1 roll PATawidthshow } bind def
  142. /awidthshow    { PATawidthshow } bind def
  143. /kshow        { PATkshow } bind def
  144. } {
  145. /fill         { oldfill } bind def
  146. /eofill     { oldeofill } bind def
  147. /stroke     { oldstroke } bind def
  148. /show         { oldshow } bind def
  149. /ashow        { oldashow } bind def
  150. /widthshow    { oldwidthshow } bind def
  151. /awidthshow    { oldawidthshow } bind def
  152. /kshow        { oldkshow } bind def
  153. } ifelse
  154. end
  155. } bind def
  156. false PATredef
  157. /PATdraw {
  158. save exch
  159. PATpcalc
  160. 5 -1 roll exec
  161. newpath
  162. PATfill
  163. restore
  164. } bind def
  165. /PATstroke {
  166. countdictstack
  167. save
  168. mark
  169. {
  170. currentpoint (Strokepath) = strokepath moveto
  171. PATpcalc
  172. (Clip) = clip newpath
  173. (PATfill) = PATfill
  174. } stopped {
  175. (*** PATstroke Warning: Path is too complex, stroking with gray) =
  176. cleartomark
  177. restore
  178. countdictstack exch sub dup 0 gt { { end } repeat } { pop } ifelse
  179. gsave 0.5 setgray oldstroke grestore
  180. } { pop restore pop } ifelse
  181. newpath
  182. } bind def
  183. /PATsstr 1 string def
  184. /PATawidthshow {
  185. {
  186. dup
  187. PATsstr dup 0 4 -1 roll put
  188. false charpath
  189. /clip load PATdraw
  190. currentpoint
  191. newpath
  192. moveto
  193. 3 index eq {
  194. 4 index 4 index rmoveto
  195. } if
  196. 2 copy rmoveto
  197. } forall
  198. pop pop pop pop pop
  199. currentpoint
  200. newpath
  201. moveto
  202. } bind def
  203. /PATkshow {
  204. exch bind
  205. 1 index 0 get
  206. 0 1 4 index length 2 sub
  207. {
  208. 3 index exch 1 add get
  209. exch 2 copy
  210. PATsstr dup 0 4 -1 roll put
  211. false charpath
  212. /clip load PATdraw
  213. currentpoint newpath moveto
  214. mark 3 1 roll
  215. 4 index exec
  216. cleartomark
  217. } for
  218. PATsstr dup 0 4 -1 roll put
  219. false charpath
  220. /clip load PATdraw
  221. currentpoint
  222. newpath
  223. moveto
  224. pop pop
  225. } bind def
  226. /PATDict 4 dict def
  227. PATDict begin
  228. /HasPattern false def
  229. end
  230. /PATsp {
  231. true PATredef
  232. PATDict begin
  233. /HasPattern true def
  234. /CurrentPattern exch def
  235. CurrentPattern /PaintType get 2 eq {
  236. /PColor exch def
  237. } if
  238. /CColor [ currentrgbcolor ] def
  239. end
  240. } bind def
  241. /PATusp {
  242. false PATredef
  243. PATDict begin
  244. HasPattern {
  245. CColor aload pop setrgbcolor
  246. } if
  247. /HasPattern false def
  248. end
  249. } bind def
  250. level2 { dontload restore } if
  251. level2 not {/dontload save def} if
  252. /PATDict 3 dict def
  253. PATDict begin
  254. /HasPattern false def
  255. end
  256. /PATsc {
  257. mark exch aload pop
  258. counttomark 1 eq { setgray } if
  259. counttomark 3 eq { setrgbcolor } if
  260. counttomark 4 eq { setcmykcolor } if
  261. counttomark 0 ne { setcolor } if
  262. cleartomark
  263. } bind def
  264. /PATmp {
  265. exch dup length 2 add dict copy
  266. begin
  267. currentdict /Multi known not { /Multi 1 def } if
  268. Multi 1 ne {
  269. /UserProc /PaintProc load def
  270. /PaintProc {
  271. begin
  272. 0 1 Multi 1 sub {
  273. PaintColors 1 index get PATsc
  274. PaintData exch get
  275. gsave
  276. currentdict
  277. UserProc
  278. grestore
  279. } for
  280. end
  281. } bind def
  282. } if
  283. currentdict
  284. end
  285. exch makepattern
  286. } bind def
  287. /PATsp {
  288. PATDict begin
  289. /HasPattern true def
  290. dup /CurrentPattern exch def
  291. /CColor [ currentcolor ] def
  292. /CCSpace currentcolorspace def
  293. end
  294. dup /PaintType get 2 eq {
  295. exch dup length
  296. dup 1 eq { [/Pattern /DeviceGray] setcolorspace } if
  297. dup 3 eq { [/Pattern /DeviceRGB] setcolorspace } if
  298. 4 eq { [/Pattern /DeviceCMYK] setcolorspace } if
  299. aload length 1 add -1 roll
  300. } if
  301. setpattern
  302. } bind def
  303. /PATusp {
  304. PATDict begin
  305. HasPattern {
  306. CCSpace setcolorspace
  307. CColor aload pop setcolor
  308. } if
  309. /HasPattern false def
  310. end
  311. } bind def
  312. level2 not {dontload restore} if
  313. end
  314. %%EndResource
  315. %%BeginFile: VIVA_EPS_IMPORT
  316. userdict begin
  317. /BeginEPSF {
  318. /b4_inc_state save def
  319. /dict_count countdictstack def
  320. /op_count count 1 sub def
  321. userdict begin
  322. /showpage {} def
  323. /copypage {} def
  324. 0 setgray 0 setlinecap
  325. 1 setlinewidth 0 setlinejoin
  326. 10 setmiterlimit [] 0 setdash newpath
  327. /languagelevel where {
  328. pop languagelevel 1 ne {
  329. false setstrokeadjust false setoverprint
  330. }if
  331. }if
  332. } bind def
  333. /EndEPSF {
  334. count op_count sub {pop} repeat
  335. countdictstack dict_count sub {end} repeat
  336. b4_inc_state restore
  337. } bind def
  338. end
  339. %%EndFile
  340. %%BeginResource: VIVAPress dictionary
  341. userdict 150 dict dup begin /VIVAPress exch put
  342. /bd {bind def} bind def
  343. /xd {exch def} bd
  344. /ld {load def} bd
  345. /nd { exch dup where { pop pop pop }{ xd } ifelse } bd
  346. [/@0/@1/@2/@3/@4/@5/@6/@7/@8/@9] { 0 def } forall
  347. /pxl {
  348. transform
  349. 0.25 sub round 0.25 add exch
  350. 0.25 sub round 0.25 add exch
  351. itransform
  352. }bd
  353. /rpxl {
  354. dtransform
  355. round exch
  356. round exch
  357. idtransform
  358. }bd
  359. /*moveto /moveto ld
  360. /moveto {pxl *moveto} bd
  361. /*lineto /lineto ld
  362. /lineto {pxl *lineto} bd
  363. /mtx matrix bd
  364. /pop5 {pop pop pop pop pop} bd
  365. /vpgsave {
  366. {currentpoint}stopped not
  367. matrix currentmatrix
  368. } def
  369. /vpgrestore {setmatrix {moveto}if} bd
  370. /safescale { exch dup 0 eq {pop 0.001} if exch dup 0 eq {pop 0.001} if scale }bd
  371. /vpring {
  372. /@1 xd/@2 xd/@3 xd/@4 xd /@5 xd
  373. newpath
  374. matrix currentmatrix
  375. @3 @5 add 2 div @2 @4 add 2 div translate
  376. matrix currentmatrix
  377. @3 @5 sub @1 add @2 @4 sub @1 add safescale
  378. 0 0 pxl 0.5 0 360 {arc}stopped {pop5}if
  379. setmatrix
  380. @3 @5 sub @1 sub @2 @4 sub @1 sub safescale
  381. 0 0 pxl 0.5 360 0 {arcn}stopped {pop5}if
  382. setmatrix
  383. } bd
  384. /vpbarc {
  385. /@1 xd/@2 xd/@3 xd/@4 xd
  386. /@5 xd/@6 xd/@7 xd
  387. vpgsave
  388. @5 @7 add 2 div @4 @6 add 2 div translate newpath 0 0 pxl moveto
  389. @5 @7 sub @4 @6 sub mtx currentmatrix pop scale @1{newpath}if
  390. 0 0 pxl 0.5 @3 @2 {arc}stopped {pop5}if @3 @2 sub abs 360 ge{closepath}if
  391. mtx setmatrix vpgrestore
  392. } bd
  393. /vpovstroke {currentlinewidth vpring fill} bd
  394. /vpov{0 360 true vpbarc}bd
  395. /vprc{/@4 xd/@3 xd /@2 xd/@1 xd
  396. newpath @1 @2 moveto @3 @2 lineto @3 @4 lineto @1 @4 lineto closepath}bd
  397. /vprrc{/@5 xd /@4 xd/@3 xd /@2 xd/@1 xd
  398. newpath
  399. @1 @3 add 2 div @2 moveto
  400. @3 @5 sub @2 @5 add @5 -90 0 arc
  401. @3 @5 sub @4 @5 sub @5 0 90 arc
  402. @1 @5 add @4 @5 sub @5 90 180 arc
  403. @1 @5 add @2 @5 add @5 180 270 arc
  404. closepath
  405. }bd
  406. /UL {
  407. gsave
  408. currentpoint newpath moveto
  409. currentfont begin
  410. /FontInfo dup where {
  411. exch get begin
  412. /UnderlineThickness dup where {exch get} {pop 50} ifelse
  413. /UnderlinePosition dup where {exch get} {pop -100} ifelse
  414. end
  415. } {pop 50 -100} ifelse
  416. 0 exch FontMatrix dtransform rmoveto
  417. 0 exch FontMatrix dtransform exch pop setlinewidth
  418. 0 rlineto stroke
  419. end
  420. grestore
  421. } def
  422. /AWSLENGTH {
  423. 0 exch 0 exch
  424. {
  425. 32 eq { exch 1 add exch } { 1 add } ifelse
  426. } forall
  427. } bd
  428. /AWS {
  429. /@1 xd /@2 xd /@3 xd /@4 xd
  430. @1 AWSLENGTH @3 mul exch @4 mul add
  431. @1 stringwidth pop add
  432. @2 exch sub
  433. @1 length 1 sub dup 0 ne{div}{exch pop}ifelse /@5 xd
  434. @4 @3 sub 0 32 @5 @3 add 0 @1 awidthshow
  435. } bd
  436. /VS {
  437. 0 0 4 2 roll AWS
  438. } bd
  439. /vpstroke{{currentpoint}stopped not stroke {moveto}if}bd
  440. /vpfill{{currentpoint}stopped not eofill {moveto}if}bd
  441. /vpclip{{currentpoint}stopped not eoclip newpath {moveto}if}bd
  442. userdict begin
  443. /kp where{/*kp /kp load put}if
  444. /rC where{/*rC /rC load put}if
  445. /vpbeginpict{
  446. countdictstack dup array dictstack exch 2 sub get begin
  447. /kp where{/kp {pop} put}if
  448. /rC where{/rC {pop pop pop pop} put}if
  449. }def
  450. /vpendpict{
  451. /kp where{/kp /*kp load put}if
  452. /rC where{/rC /*rC load put}if
  453. end
  454. }def
  455. /mtx matrix def
  456. /mtx2 matrix def
  457. /mtx3 matrix def
  458. /msave{mtx currentmatrix aload pop}bind def
  459. /mrestore{mtx astore setmatrix}bind def
  460. end
  461. %%
  462. /imoveto {
  463. itransform moveto
  464. } def
  465. /ilineto {
  466. itransform lineto
  467. } def
  468. /icurveto {
  469. 3 { 6 2 roll itransform } repeat curveto
  470. } def
  471. /iclosepath {
  472. closepath
  473. } def
  474. /vpcurrentclipbbox {
  475. gsave
  476. [
  477. initmatrix clippath
  478. { currentpoint pop pop } stopped not {
  479. pathbbox 2 { 4 -2 roll transform } repeat
  480. 2 index exch 2 index exch dup 6 index exch
  481. /imoveto cvx /ilineto cvx /ilineto cvx /ilineto cvx /closepath cvx
  482. } if
  483. ]
  484. grestore
  485. } bd
  486. /vpsclip {
  487. vpcurrentclippath
  488. } bd
  489. /vprclip {
  490. vpsetclip
  491. } bd
  492. /vpcurrentclippath {
  493. gsave
  494. clippath
  495. [
  496. { transform /imoveto cvx }
  497. { transform /ilineto cvx }
  498. { 3 { 6 -2 roll transform } repeat /icurveto cvx }
  499. { /iclosepath cvx } pathforall
  500. ]
  501. grestore
  502. } bd
  503. /vpsetclip {
  504. systemdict begin
  505. newpath initclip cvx exec eoclip newpath
  506. end
  507. } bd
  508. %%
  509. /vpcurrentgstate {
  510. mark
  511. /cpath        vpcurrentclipbbox cvlit
  512. /linewidth    currentlinewidth
  513. /linejoin    currentlinejoin
  514. /linecap    currentlinecap
  515. /miterlimit    currentmiterlimit
  516. /dash        currentdash 2 array astore
  517. /ctm        matrix currentmatrix
  518. /rgbcolor    currentrgbcolor 3 array astore
  519. /font        currentfont
  520. counttomark 2 idiv dup dict begin { def } repeat pop currentdict end
  521. } bd
  522. /vpsetgstate {
  523. begin
  524. linewidth    setlinewidth
  525. linejoin    setlinejoin
  526. linecap        setlinecap
  527. miterlimit    setmiterlimit
  528. dash        aload pop setdash
  529. ctm            setmatrix
  530. rgbcolor    aload pop setrgbcolor
  531. cpath        dup length 0 ne { vpsetclip }{ pop } ifelse
  532. font        setfont
  533. end
  534. } bd
  535. /vpb {
  536. /mdgstate vpcurrentgstate def
  537. /vpgstate where { pop vpgstate vpsetgstate } if
  538. } bd
  539. /vpbf {
  540. currentfont vpb setfont
  541. } bd
  542. /vpe {
  543. /vpgstate vpcurrentgstate def
  544. /mdgstate where { pop mdgstate vpsetgstate } if
  545. } bd
  546. /vpec {
  547. /vpgstate vpcurrentgstate def
  548. vpgstate /cpath vpcurrentclippath put
  549. } bd
  550. /vpex {
  551. /vpgstate vpcurrentgstate def
  552. vpgstate /cpath vpcurrentclippath put
  553. /mdgstate where { pop mdgstate vpsetgstate } if
  554. } bd
  555. /vpbc {
  556. /mdgstate where {
  557. pop
  558. mdgstate /cpath vpgstate /cpath get put
  559. mdgstate vpsetgstate
  560. } if
  561. } bd
  562. /bu where { /bu {} put } if
  563. /bn where { /bn {/pm where {/pm save put } if } put } if
  564. /vppush {
  565. PATusp
  566. currentlinewidth
  567. currentlinejoin
  568. currentlinecap
  569. currentmiterlimit
  570. currentdash exch aload length
  571. matrix currentmatrix aload pop
  572. currentrgbcolor
  573. } bd
  574. /vppop {
  575. setrgbcolor
  576. matrix astore setmatrix
  577. array astore exch setdash
  578. setmiterlimit
  579. setlinecap
  580. setlinejoin
  581. setlinewidth
  582. } bd
  583. /vporgx matrix def
  584. /vporg {
  585. vporgx currentmatrix pop
  586. {currentpoint}stopped not {translate}if
  587. /vpgstate vpcurrentgstate def
  588. } bd
  589. /vpscalefont {
  590. currentfont exch scalefont setfont
  591. } bd
  592. /__TrappedFont 0 def
  593. /vptrapfont {
  594. dup 0 gt {
  595. currentfont
  596. 8 dict begin
  597. /__Font exch def
  598. /__TrapWidth exch def
  599. /FontType 3 def
  600. /FontMatrix [1 0 0 1 0 0] def
  601. /FontBBox [0 0 1 1] def
  602. /Encoding StandardEncoding def
  603. /BuildChar {
  604. exch begin
  605. __Font setfont
  606. ( ) dup 0 4 -1 roll put
  607. dup dup stringwidth setcharwidth
  608. 0 0 moveto show
  609. 0 0 moveto false charpath __TrapWidth 2 mul setlinewidth stroke
  610. end
  611. } bind def
  612. currentdict
  613. end
  614. /__TrappedFont exch definefont setfont
  615. }{pop}ifelse
  616. } bind def
  617. /vpmpat {
  618. 20 dict begin
  619. /Bitmap exch def
  620. /PaintType 2 def
  621. /PatternType 1 def
  622. /TilingType 2 def
  623. /BBox [ 0 0 1 1 ] def
  624. /XStep 1 def
  625. /YStep 1 def
  626. /IMatrix [8 0 0 -8 0 8] def
  627. /PaintProc {
  628. begin
  629. 8 8 true IMatrix { Bitmap } imagemask
  630. end
  631. } bind def
  632. currentdict
  633. end
  634. gsave
  635. initmatrix 1 1 dtransform round exch round exch idtransform scale
  636. [8 0 0 8 0 0] PATmp
  637. grestore
  638. /vpmasterpattern exch def
  639. }bd
  640. /vpsetrgbpattern {
  641. 3 array astore
  642. vpmasterpattern PATsp
  643. }bd
  644. /vpsetcmykpattern {
  645. 4 array astore
  646. vpmasterpattern PATsp
  647. }bd
  648. /vpsetgraypattern {
  649. 1 array astore
  650. vpmasterpattern PATsp
  651. }bd
  652. /__setgray /setgray load def
  653. /__setrgbcolor /setrgbcolor load def
  654. /setcmykcolor where {/setcmykcolor get /__setcmykcolor exch def}
  655. {{1 sub 4 1 roll 3{3 index add neg dup 0 lt {pop 0}if 3 1 roll}repeat setrgbcolor pop} bind dup /setcmykcolor xd /__setcmykcolor xd}ifelse
  656. /__setblack { dup dup dup __setcmykcolor } def
  657. /__image /image load def
  658. /colorimage where {/colorimage get /__colorimage exch def}if
  659. /putmark {
  660. gsave
  661. {currentpoint}stopped not {translate}if
  662. 4 1 roll rotate scale load exec
  663. grestore
  664. }bd
  665. /hairstroke {
  666. initmatrix .2 setlinewidth stroke
  667. }bd
  668. /dashedline {
  669. gsave newpath
  670. -.5 0 moveto
  671. .19 0 rlineto
  672. .08 0 rmoveto
  673. .19 0 rlineto
  674. .08 0 rmoveto
  675. .19 0 rlineto
  676. .08 0 rmoveto
  677. .19 0 rlineto
  678. 1 __setblack
  679. hairstroke
  680. grestore
  681. }bd
  682. /line {
  683. gsave newpath
  684. -.5 0 moveto 1 0 rlineto
  685. 1 __setblack hairstroke
  686. grestore
  687. }bd
  688. /cross {
  689. gsave newpath
  690. -.5 0 moveto 1 0 rlineto
  691. 0 -.5 moveto 0 1 rlineto
  692. 1 __setblack hairstroke
  693. grestore
  694. }bd
  695. /square {
  696. gsave newpath
  697. -.5 dup moveto 1 0 rlineto
  698. 0 1 rlineto -1 0 rlineto closepath
  699. 1 __setblack fill
  700. grestore
  701. }bd
  702. /triangle {
  703. gsave newpath
  704. -.5 -.5 moveto 0 1 rlineto
  705. .8 dup dup neg rlineto 0 exch 1 sub rlineto closepath
  706. 1 __setblack fill
  707. grestore
  708. }bd
  709. /crop {
  710. gsave newpath
  711. 0 0 moveto 0 1 rlineto
  712. 1 __setblack hairstroke
  713. grestore
  714. }bd
  715. /fit {
  716. gsave newpath
  717. -.5 0 moveto 1 0 rlineto
  718. 0 -.5 moveto 0 1 rlineto
  719. 0 0 moveto 0 0 0.3 0 360 arc
  720. 1 __setblack hairstroke
  721. grestore
  722. }bd
  723. /VIVALogo {
  724. gsave
  725. -.225 -.5 .225 .5 vpov .9 __setblack fill
  726. -.16 .34 moveto /Times-Roman findfont [.45 0 0 -.9 0 0] makefont setfont 0 __setblack (V) show
  727. .6 .6 scale  0 -.2 rmoveto 1 __setblack (     i     v     a) show 1 0 rmoveto show
  728. grestore
  729. } bd
  730. /siemensstern {
  731. gsave newpath
  732. matrix currentmatrix initgraphics setmatrix
  733. 1 24 {
  734. 0 0 moveto 0 0 .5 0 15 arc closepath
  735. 1 exch sub dup __setblack fill
  736. 15 rotate
  737. } repeat pop
  738. 0 0 moveto 0 0 .5 0 360 arc closepath
  739. initmatrix .1 setlinewidth stroke
  740. grestore
  741. } bd
  742. /grayrampK {
  743. gsave newpath
  744. 0 0 moveto
  745. .1 .1 1.09 {
  746. 0 1 rmoveto currentpoint newpath moveto
  747. gsave
  748. 1 0 rlineto 0 -1 rlineto -1 0 rlineto closepath
  749. 0 0 0 4 -1 roll setcmykcolorifseparate
  750. fill
  751. grestore
  752. } for
  753. grestore
  754. } def
  755. /grayrampCMY {
  756. gsave newpath
  757. 0 0 moveto
  758. .1 .1 1.09 {
  759. 0 1 rmoveto currentpoint newpath moveto
  760. gsave
  761. 1 0 rlineto 0 -1 rlineto -1 0 rlineto closepath
  762. dup dup 0 setcmykcolorifseparate
  763. fill
  764. grestore
  765. } for
  766. grestore
  767. } def
  768. /grayramp {
  769. gsave -.5 1 scale grayrampK grestore
  770. gsave  .5 1 scale grayrampCMY grestore
  771. } def
  772. /colorramp {
  773. 2 dict begin
  774. /colorbox {
  775. gsave currentpoint newpath moveto
  776. 5 1 roll setcmykcolorifseparate
  777. .5 0 rlineto 0 -1 rlineto -1 0 rlineto 0 1 rlineto closepath
  778. gsave fill grestore
  779. /Courier findfont .5 scalefont setfont
  780. dup stringwidth pop -2 div -.35 rmoveto
  781. 1 __setgray
  782. 1 -1 scale show
  783. grestore
  784. } bd
  785. gsave newpath
  786. 0 1 moveto  1 0 0 0 (C) colorbox
  787. 0 1 rmoveto 0 1 0 0 (M) colorbox
  788. 0 1 rmoveto 0 0 1 0 (Y) colorbox
  789. 0 1 rmoveto 1 1 0 0 (CM) colorbox
  790. 0 1 rmoveto 1 0 1 0 (CY) colorbox
  791. 0 1 rmoveto 0 1 1 0 (MY) colorbox
  792. 0 1 rmoveto 1 1 1 0 (CMY) colorbox
  793. 0 1 rmoveto 0 0 0 1 (K) colorbox
  794. grestore
  795. end
  796. } def
  797. /signatur {
  798. 5 dict begin
  799. /text exch def
  800. /just exch def
  801. /fontID exch def
  802. gsave newpath
  803. 1 -1 scale
  804. 1 __setblack
  805. /Courier
  806. fontID 20 eq {pop /Times-Roman} if
  807. fontID 21 eq {pop /Helvetica} if
  808. fontID 22 eq {pop /Courier} if
  809. fontID 23 eq {pop /Symbol} if
  810. findfont 1 scalefont setfont
  811. 0 0 moveto
  812. just -1 eq {text stringwidth exch neg exch neg rmoveto} if
  813. text show
  814. grestore
  815. end
  816. } bd
  817. /plateinfo {
  818. /@5 xd /@4 xd/@3 xd /@2 xd/@1 xd
  819. @5 @1 @2 moveto 14 -10 rmoveto 22 -1 3 -1 roll 6 7 0 /signatur putmark
  820. } bd
  821. userdict begin
  822. /dotscreen{180 mul cos exch 180 mul cos add 2 div}
  823. /linescreen{exch pop}
  824. /setscreenfreq{currentscreen 3 -1 roll pop setscreen}bd
  825. /setscreenangle{currentscreen exch pop 3 -1 roll exch setscreen}bd
  826. /setscreenproc{currentscreen pop 3 -1 roll setscreen}bd
  827. /setcmykcolorifseparate {
  828. /vpseparationindex where {
  829. /vpseparationindex get dup 0 ge{pop 0}{neg 1 sub index}ifelse
  830. 1 exch sub __setgray  pop pop pop pop
  831. }{__setcmykcolor}ifelse
  832. }bd
  833. /vpsetupseparation
  834. {
  835. /CMYK2SEPARATIONGRAY {
  836. dup 0 gt{pop pop 0}{neg -1 roll}ifelse
  837. 4 1 roll pop pop pop 255 exch sub
  838. } bind def
  839. /RGB2CMYK {
  840. 255 exch sub /Yellow exch def
  841. 255 exch sub /Magenta exch def
  842. 255 exch sub dup /Cyan exch def
  843. /Black exch def
  844. Magenta Black lt {/Black Magenta def}if
  845. Yellow Black lt {/Black Yellow def}if
  846. Cyan Black sub
  847. Magenta Black sub
  848. Yellow Black sub
  849. Black
  850. } bind def
  851. /cmyk2separationgray {
  852. dup 0 ge{pop pop 0}{neg -1 roll}ifelse
  853. 4 1 roll pop pop pop 1 exch sub
  854. } bind def
  855. /rgb2cmyk {
  856. 1 exch sub /Yellow exch def
  857. 1 exch sub /Magenta exch def
  858. 1 exch sub dup /Cyan exch def
  859. /Black exch def
  860. Magenta Black lt {/Black Magenta def}if
  861. Yellow Black lt {/Black Yellow def}if
  862. Cyan Black sub
  863. Magenta Black sub
  864. Yellow Black sub
  865. Black
  866. } bind def
  867. /setgray {
  868. vpseparationindex -1 ne { pop 1 }if __setgray
  869. } bind def
  870. /setrgbcolor {
  871. rgb2cmyk vpseparationindex cmyk2separationgray __setgray
  872. } bind def
  873. /setcmykcolor {
  874. vpseparationindex cmyk2separationgray __setgray
  875. } bind def
  876. /level2image {
  877. 20 dict exch
  878. begin begin
  879. /NumberOfComponents Decode length 2 div def
  880. /GrayToGraySource {
  881. /S0 DataSource def
  882. vpseparationindex -1 ne {0 1 S0 length 1 sub {S0 exch 255 put}for} if
  883. S0
  884. } bind def
  885. /RGBToGraySource {
  886. /S0 DataSource 0 get exec def
  887. /S1 DataSource 1 get exec def
  888. /S2 DataSource 2 get exec def
  889. 0 1 S0 length 1 sub {
  890. dup S0 exch get /Red exch def
  891. dup S1 exch get /Green exch def
  892. dup S2 exch get /Blue exch def
  893. dup S0 exch
  894. Red Green Blue RGB2CMYK vpseparationindex CMYK2SEPARATIONGRAY
  895. put
  896. pop
  897. } for
  898. S0
  899. } def
  900. /CMYKToGraySource {
  901. /S0 DataSource 0 get exec def
  902. /S1 DataSource 1 get exec def
  903. /S2 DataSource 2 get exec def
  904. /S3 DataSource 3 get exec def
  905. vpseparationindex
  906. dup -4 eq{ pop S0 }
  907. {dup -3 eq{ pop S1 }
  908. {dup -2 eq{ pop S2 }
  909. {-1 eq{ S3 }
  910. {<00>}ifelse}ifelse}ifelse}ifelse
  911. /S0 exch def
  912. 0 1 S0 length 1 sub {
  913. dup S0 exch get 255 exch sub
  914. S0 3 1 roll put
  915. } bind for
  916. S0
  917. } bind def
  918. Width Height BitsPerComponent ImageMatrix
  919. NumberOfComponents
  920. dup 1 eq{ pop /GrayToGraySource load}
  921. {dup 3 eq{ pop /RGBToGraySource load}
  922. {4 eq{ /CMYKToGraySource load}
  923. {{<FF>}}ifelse}ifelse}ifelse
  924. __image
  925. end end
  926. } bind def
  927. /image {
  928. dup type /dicttype ne {
  929. 10 dict begin
  930. /Decode [0 1] def
  931. /DataSource exch def
  932. /ImageMatrix exch def
  933. /BitsPerComponent exch def
  934. /Height exch def
  935. /Width exch def
  936. /ImageType 1 def
  937. currentdict end
  938. } if
  939. level2image
  940. } def
  941. /colorimage {
  942. 14 dict begin
  943. dup 1 eq {/Decode [0 1] def}if
  944. dup 3 eq {/Decode [0 1 0 1 0 1] def}if
  945. dup 4 eq {/Decode [0 1 0 1 0 1 0 1] def}if
  946. exch {
  947. /MultipleDataSource true def
  948. array astore
  949. }{pop}ifelse /DataSource exch def
  950. /ImageMatrix exch def
  951. /BitsPerComponent exch def
  952. /Height exch def
  953. /Width exch def
  954. /ImageType 1 def
  955. currentdict end
  956. level2image
  957. } def
  958. /findcmykcustomcolor {
  959. 5 packedarray
  960. } bind def
  961. /setcustomcolor {
  962. exch aload pop
  963. vpseparatecustomcolors
  964. {
  965. pop 4 {    4 index mul 4 1 roll } repeat
  966. 5 -1 roll pop
  967. vpseparationindex cmyk2separationgray
  968. }
  969. {
  970. vpseparationname anchorsearch {pop pop true}{pop false}ifelse
  971. 5 1 roll pop pop pop pop
  972. {1 exch sub}{pop 1}ifelse
  973. }ifelse
  974. __setgray
  975. } def
  976. /setoverprint { /currentoverprint xd } nd
  977. /overprint? { currentoverprint currentgray 1 eq and } bd
  978. /execoverprint {
  979. overprint? {
  980. gsave
  981. currentpoint
  982. matrix currentmatrix
  983. nulldevice setmatrix
  984. moveto
  985. cvx exec
  986. { currentpoint } stopped not
  987. grestore
  988. newpath
  989. { moveto } if
  990. }{ cvx exec } ifelse
  991. } bd
  992. /renderers [
  993. /stroke
  994. /fill
  995. /ashow
  996. /awidthshow
  997. /cshow
  998. /show
  999. /widthshow
  1000. /xshow
  1001. /yshow
  1002. /xyshow
  1003. ] def
  1004. renderers {
  1005. dup where {
  1006. exch dup 3 1 roll get
  1007. [ exch cvlit /execoverprint cvx ] cvx def
  1008. } { pop }ifelse
  1009. } forall
  1010. } def
  1011. end
  1012. end
  1013.